Unique Paths
A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below).
The robot can only move either down or right at any point in time.
The robot is trying to reach the bottom-right corner of the grid (marked 'Finish' in the diagram below).
How many possible unique paths are there?
题目大意:给定一个m*n的矩阵,一只机器人想从左上角走到右下角,每次只能向下向右走一格,问有多少种走法。
题目难度:Medium
/**
* Created by gzdaijie on 16/5/26
* 动态规划,map[i][j] = map[i - 1][j] + [i][j - 1]
* 复杂度 O(M * N)
*/
public class Solution {
public int uniquePaths(int m, int n) {
if (m < 1 || n < 1) return 0;
int[][] map = new int[m][n];
for (int i = 0; i < m; i++) map[i][0] = 1;
for (int i = 0; i < n; i++) map[0][i] = 1;
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) {
map[i][j] = map[i - 1][j] + map[i][j - 1];
}
}
return map[m - 1][n - 1];
}
}